Microcontrollers are used in a wide range of applications, such as consumer products, office equipment, industrial equipment, and communications, just to name a few. Use of a microcontroller often requires an engineer to evaluate the function and performance of various microcontroller models from different vendors to determine which one should be used. Also, use of a microcontroller often requires an engineer to develop software to be downloaded or programmed into the microcontroller.
Most engineers consider the selection of software development tools and access to pre-developed code, such as drivers, middleware, and sample projects, as primary factors in selecting a microcontroller vendor. Thus, after a suitable microcontroller has been identified, the engineer's focus shifts to the software tools, drivers, sample code, etc., all of which must be evaluated before the best microcontroller is selected.
Microcontroller vendors often send their own engineers to the user's site to help the user in the evaluation, selection, and development process, which is a manpower intensive solution that has to be scheduled in advance. Various devices, such as evaluation kits, starter kits, debuggers, and emulators, have been used to help in the evaluation, selection, and/or development processes. Some of these devices allow the user to communicate with the microcontroller through an integrated development environment, which often includes a graphical user interface that allows the user to control various development tools, such as a source code editor, compiler, linker, debugger, and analysis utilities. A drawback with prior systems is that they still lack a level of interactivity and ease of use afforded by customized interfaces which the user or microcontroller manufacturer may tailor for any purpose, including but not limited to performing experiments on the microcontroller, developing programs for use with the microcontroller, testing programs in the microcontroller, and tutorials on how to perform these and other tasks.
Accordingly, there is a need for a system and method for communicating with a microcontroller with a greater level of interactivity to facilitate evaluation of microcontrollers and associated support products, to facilitate development of software programs for use with microcontrollers, and to reduce time and costs associated with such activities.